:art: Support activity_contribute_list / activity_contribute_detail

huangqimin001 vor 2 Jahren
Ursprung
Commit
852b7bb5d4
6 geänderte Dateien mit 76 neuen Zeilen und 8 gelöschten Zeilen
  1. 47 7
      api/member_views.py
  2. 2 0
      api/urls.py
  3. 1 1
      member/admin.py
  4. 19 0
      member/migrations/0036_memberactivitycontributioninfo_video_url.py
  5. 2 0
      member/models.py
  6. 5 0
      utils/error/errno_utils.py

+ 47 - 7
api/member_views.py

@@ -17,8 +17,9 @@ from account.models import UserInfo
17 17
 from coupon.models import UserCouponInfo
18 18
 from member.models import (GoodsInfo, GoodsOrderInfo, MemberActivityContributionInfo, MemberActivityGroupShareInfo,
19 19
                            MemberActivityInfo, MemberActivitySigninInfo, MemberActivitySignupInfo, RightInfo)
20
-from utils.error.errno_utils import (MemberActivityStatusCode, MemberCouponStatusCode, MemberGoodStatusCode,
21
-                                     MemberRightStatusCode, UserStatusCode)
20
+from utils.error.errno_utils import (MemberActivityContributionStatusCode, MemberActivityStatusCode,
21
+                                     MemberCouponStatusCode, MemberGoodStatusCode, MemberRightStatusCode,
22
+                                     UserStatusCode)
22 23
 from utils.redis.connect import r
23 24
 from utils.redis.rkeys import MEMBER_SEND_COUPON_LIST, MEMBER_UPGRADE_INFO
24 25
 from utils.redis.rshot import get_member_shot_data
@@ -362,7 +363,7 @@ def activity_list(request):
362 363
 def activity_detail(request):
363 364
     brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID)
364 365
     user_id = request.POST.get('user_id', '')
365
-    activity_id = request.POST.get('activity_id')
366
+    activity_id = request.POST.get('activity_id', '')
366 367
 
367 368
     try:
368 369
         act = MemberActivityInfo.objects.get(activity_id=activity_id, status=True)
@@ -378,7 +379,7 @@ def activity_detail(request):
378 379
 def activity_signup(request):
379 380
     brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID)
380 381
     user_id = request.POST.get('user_id', '')
381
-    activity_id = request.POST.get('activity_id')
382
+    activity_id = request.POST.get('activity_id', '')
382 383
     name = request.POST.get('name', '')
383 384
     phone = request.POST.get('phone', '')
384 385
 
@@ -406,7 +407,7 @@ def activity_signup(request):
406 407
 def activity_signin(request):
407 408
     brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID)
408 409
     user_id = request.POST.get('user_id', '')
409
-    activity_id = request.POST.get('activity_id')
410
+    activity_id = request.POST.get('activity_id', '')
410 411
 
411 412
     # 校验用户是否存在
412 413
     try:
@@ -451,7 +452,7 @@ def activity_group_share(request):
451 452
     brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID)
452 453
     share_user_id = request.POST.get('share_user_id', '')
453 454
     click_user_id = request.POST.get('click_user_id', '')
454
-    activity_id = request.POST.get('activity_id')
455
+    activity_id = request.POST.get('activity_id', '')
455 456
 
456 457
     iv = request.POST.get('iv', '')
457 458
     encryptedData = request.POST.get('encryptedData', '')
@@ -514,11 +515,12 @@ def activity_group_share(request):
514 515
 def activity_contribute(request):
515 516
     brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID)
516 517
     user_id = request.POST.get('user_id', '')
517
-    activity_id = request.POST.get('activity_id')
518
+    activity_id = request.POST.get('activity_id', '')
518 519
     content_type = get_query_value(request, 'content_type', val_cast_type='int')
519 520
     title = request.POST.get('title', '')
520 521
     content = request.POST.get('content', '')
521 522
     images = get_query_value(request, 'images', val_cast_type='listjson')
523
+    video_url = request.POST.get('video_url', '')
522 524
 
523 525
     # 校验用户是否存在
524 526
     try:
@@ -534,8 +536,46 @@ def activity_contribute(request):
534 536
         title=title,
535 537
         content=content,
536 538
         images=images,
539
+        video_url=video_url,
537 540
     )
538 541
 
539 542
     return response(data={
540 543
         'contribution': contribution.data,
541 544
     })
545
+
546
+
547
+@logit
548
+def activity_contribute_list(request):
549
+    brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID)
550
+    user_id = request.POST.get('user_id', '')
551
+    activity_id = request.POST.get('activity_id', '')
552
+    content_type = get_query_value(request, 'content_type', val_cast_type='int')
553
+    page = request.POST.get('page', 1)
554
+    num = request.POST.get('num', 20)
555
+
556
+    contributions = MemberActivityContributionInfo.objects.filter(content_type=content_type, status=True)
557
+    if user_id:
558
+        contributions = contributions.filter(user_id=user_id)
559
+    if activity_id:
560
+        contributions = contributions.filter(activity_id=activity_id)
561
+    contributions = contributions.order_by('-pk')
562
+    contributions, left = pagination(contributions, page, num)
563
+    contributions = [contribution.data for contribution in contributions]
564
+
565
+    return response(data={
566
+        'contributions': contributions,
567
+        'left': left,
568
+    })
569
+
570
+
571
+@logit
572
+def activity_contribute_detail(request):
573
+    brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID)
574
+    contribution_id = request.POST.get('contribution_id', '')
575
+
576
+    try:
577
+        contribution = MemberActivityContributionInfo.objects.get(contribution_id=contribution_id, status=True)
578
+    except MemberActivityContributionInfo.DoesNotExist:
579
+        return response(MemberActivityContributionStatusCode.ACTIVITY_CONTRIBUTION_NOT_FOUND)
580
+
581
+    return response(data=contribution.data)

+ 2 - 0
api/urls.py

@@ -229,6 +229,8 @@ urlpatterns += [
229 229
     url(r'^member/activity/group_share$', member_views.activity_group_share, name='member_activity_group_share'),
230 230
 
231 231
     url(r'^member/activity/contribute$', member_views.activity_contribute, name='member_activity_contribute'),
232
+    url(r'^member/activity/contribute/list$', member_views.activity_contribute_list, name='member_activity_contribute_list'),
233
+    url(r'^member/activity/contribute/detail$', member_views.activity_contribute_detail, name='member_activity_contribute_detail'),
232 234
 
233 235
     url(r'^rights$', member_views.rights, name='rights'),
234 236
     url(r'^right/detail$', member_views.right_detail, name='right_detail'),

+ 1 - 1
member/admin.py

@@ -99,7 +99,7 @@ class MemberActivityGroupShareInfoAdmin(admin.ModelAdmin):
99 99
 
100 100
 
101 101
 class MemberActivityContributionInfoAdmin(admin.ModelAdmin):
102
-    list_display = ('contribution_id', 'activity_id', 'content_type', 'title', 'content', 'images', 'status', 'created_at', 'updated_at')
102
+    list_display = ('contribution_id', 'activity_id', 'content_type', 'title', 'content', 'images', 'video_url', 'status', 'created_at', 'updated_at')
103 103
     list_filter = ('activity_id', 'content_type', 'status')
104 104
 
105 105
 

+ 19 - 0
member/migrations/0036_memberactivitycontributioninfo_video_url.py

@@ -0,0 +1,19 @@
1
+# -*- coding: utf-8 -*-
2
+# Generated by Django 3.2.16 on 2022-10-23 07:10
3
+
4
+from django.db import migrations, models
5
+
6
+
7
+class Migration(migrations.Migration):
8
+
9
+    dependencies = [
10
+        ('member', '0035_memberactivitycontributioninfo'),
11
+    ]
12
+
13
+    operations = [
14
+        migrations.AddField(
15
+            model_name='memberactivitycontributioninfo',
16
+            name='video_url',
17
+            field=models.CharField(blank=True, help_text='视频链接', max_length=255, null=True, verbose_name='video_url'),
18
+        ),
19
+    ]

+ 2 - 0
member/models.py

@@ -692,6 +692,7 @@ class MemberActivityContributionInfo(BaseModelMixin):
692 692
     #     'height': 100,
693 693
     # }]
694 694
     images = JSONField(_(u'images'), default=[], help_text=u'图片列表')
695
+    video_url = models.CharField(_(u'video_url'), max_length=255, blank=True, null=True, help_text=u'视频链接')
695 696
 
696 697
     class Meta:
697 698
         verbose_name = _(u'会员活动投稿信息')
@@ -711,4 +712,5 @@ class MemberActivityContributionInfo(BaseModelMixin):
711 712
             'title': self.title,
712 713
             'content': self.content,
713 714
             'images': self.images,
715
+            'video_url': self.video_url or '',
714 716
         }

+ 5 - 0
utils/error/errno_utils.py

@@ -95,6 +95,11 @@ class MemberActivityStatusCode(BaseStatusCode):
95 95
     ACTIVITY_NOT_FOUND = StatusCodeField(503701, 'Activity Not Found', description=u'活动不存在')
96 96
 
97 97
 
98
+class MemberActivityContributionStatusCode(BaseStatusCode):
99
+    """ 会员活动投稿相关错误码 5038xx """
100
+    ACTIVITY_CONTRIBUTION_NOT_FOUND = StatusCodeField(503801, 'Activity Contribution Not Found', description=u'活动投稿不存在')
101
+
102
+
98 103
 class MemberCouponStatusCode(BaseStatusCode):
99 104
     """ 会员优惠券相关错误码 5040xx """
100 105
     USER_COUPON_NOT_FOUND = StatusCodeField(504001, 'User Coupon Not Found', description=u'用户优惠券不存在')